# encoding=utf-8

"""DrScanTools
    dr路径文件扫描类， 提供功能如下:
        1. 返回一个按照时间新到旧的排序列表，并过滤其中非图片，以及非目标的文件
            通常最新的文件就是机器刚刚生成的文件，同时也可以屏蔽不同系统文件读入顺序的不同
        2. 返回一个打标列表，用于区分原图和曝光图
"""
import os


class DrScanTools:
    def __init__(self, scan_dir: str):
        self.scan_dir = scan_dir

    def scan_once(self):
        # 扫描图片文件
        image_files = [f for f in os.listdir(self.scan_dir) if f.lower().endswith(('.jpg', '.jpeg', '.png'))]

        # 过滤非目标文件
        dst_files = [f for f in image_files if 'anterior' not in f.lower()]

        # 按照时间排序
        sort_files = sorted(dst_files, key=lambda x: os.path.getmtime(os.path.join(self.scan_dir, x)), reverse=True)
        return sort_files

    def label_list(self, files: list[str]):
        label_list = [1 if os.path.splitext(f)[0].endswith('s') else 0 for f in files]
        return label_list


if __name__ == '__main__':
    import time
    dst = "/home/tacom/Development/Mounts/RemoteSync/Seafile/P-EM-DataTest/"
    t = DrScanTools(dst)
    t1 = time.perf_counter()
    res = t.scan_once()
    label_res = t.label_list(res)
    t2 = time.perf_counter()
    for r, l in zip(res, label_res):
        print(r, l)

    print("time cost: ", t2 - t1, "len", len(res))

